package com.hopes.bizz.close.position.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hopes.bizz.close.position.dto.HazardCachePositionDTO;
import com.hopes.bizz.close.position.dto.HazardCarDTO;
import com.hopes.bizz.close.position.vo.HazardCachePositionVO;
import com.hopes.bizz.close.position.vo.HazardCarTotalOnlineVO;
import com.hopes.boss.common.core.util.R;

import java.util.List;

/**
 * @author yumr
 * @ProjectName bizz
 * @Description 危险品车辆实时定位
 * @time 2024/1/30 14:30
 */
public interface HazardCachePositionService {

    /**
     * 危险品实时定位数据
     * @param hazardCachePositionDTO  定位数据
     * @return
     */
    R locations(HazardCachePositionDTO hazardCachePositionDTO);


    /**
     * 刷新危险品缓存的定位数据
     * @return   刷新结果
     */
    boolean cleanHazardCarCachePosition();

    /**
     * 危险品缓存的定位数据
     * @return    危险品车辆的定位数据
     */
    List<HazardCachePositionVO> listHazardCarCachePosition();

    /**
     * 危险品车辆总数 & 在线数量
     * @param page  分页参数
     * @return       结果集
     */
    IPage<HazardCarTotalOnlineVO> pageTotalOnlineNumber(Page page);

    /**
     * 列表查询 危险品车辆缓存定位数据
     * @param hazardCarDTO   查询参数
     * @return               结果集
     */
    List<HazardCachePositionVO> listHazardCarRtPosition(HazardCarDTO hazardCarDTO);

    /**
     * 分页查询 危险品车辆缓存定位数据
     * @param page              分页参数
     * @param hazardCarDTO       查询参数
     * @return                   结果集
     */
    IPage<HazardCachePositionVO> pageHazardCarRtPosition(Page page, HazardCarDTO hazardCarDTO);



}
